excel小写转大写公式_EXCEL中文小写数字怎么转化成阿拉伯数字呢?

把阿拉伯数字转化成中文小写数字,我们都知道,通过单元格格式设置就可以实现,如下图:

24257864b410ac959fbab295972e16fc.png
47c6d8deda4b9f4cba176b90306663db.gif

但是上面的转化有时并不能满足我们的需求,比如,我们需要把13转化成十三,而不是一十三,这时我们该怎么办呢?

下面我们先学习下把阿拉伯数字转化成中文数字的一个函数。

一、NUMBERSTRING

功能:

EXCEL中隐藏了一个将小写数字转换成中文大写数字的函数:NUMBERSTRING,此函数可以方便的实现小写数字到中文大写数字的转化,而且有三个参数可以选择,以展现三种不同的大写方式。此函数仅支持正整数,不支持有小数的数字。

语法:

=NUMBERSTRING(VALUE,TYPE)

value:要转化的数字

type:返回结果的类型,有三种:1,2,3

示例:

=NumberString(1234567890,1) 返回结果:一十二亿三千四百五十六万七千八百九十

=NumberString(1234567890,2) 返回结果:壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾

=NumberString(1234567890,3) 返回结果:一二三四五六七八九〇

二:[dbnum]的几种格式

[dbnum1]是将阿拉伯数字转换为汉字,如:123转换为一二三

[dbbun2]是转换成大写汉字,如:123转换为壹贰叁

[dbnum3]是转换为全角数字,如:123转换为 123

d代表日期之中的日,m日期中的月,y日期中的年,h日期中的小时,m日期中的分,s是日期中的秒,e也表示年,b表示佛历年。

=TEXT(10,"[DBnum1]")

结果为“一十”,

=TEXT(10,"[DBnum1]d")

结果为“十”

到这里大家就知道怎么把13变为十三了吧!

4f8f775892c1cf56e23e459299d4c86e.gif

三、中文小写转阿拉伯

如下图:

c6bf70dccb6e17886e27c16fcada48d3.png

上图中列举了阿拉伯数字转中文小写数字的两种思路:

公式一:

=MATCH(A2,TEXT(ROW($1:$151),"[dbnum1]"),0)

先用row函数构造一个1到151的序列号数组,然后用text把这个数组转化为中文小写的数字序列,最后用match查找目标单元格在这个序列中的位置即为该中文小写数字对应的阿拉伯数字。思路很巧妙。

当然row构造的数字序列号,上例中我用的是1:151,自己可以根据实际情况确定。

公式二:

=MAX((TEXT(ROW($1:$151),"[dbnum1]")=A2)*ROW($1:$151))

先用row函数构造一个1到151的序列号数组,然后用text把这个数组转化为中文小写的数字序列,然后通过等于目标单元格来获得一组逻辑值组成的数组,只有等于目标单元个值为true,其他均为false,然后用这组逻辑值与数字序列数组相乘,得到一个新的数组,新数组里只有true对应的数字和FALSE,最后用max找出这个数字。

四、实例

如下图:

d64d725f0ae50e8cb26f774cab49ed90.png

把A列和B列的内容合并转化为下面的格式

这是一道综合练习题:

用到

文本连接符 &

自定义日期格式

文本提取

中文数字转化为阿拉伯数字

自定义数字格式

第一步:将日期转化为目标格式,提取B列文本中的中文数字

b4abb01bc8621d23b0210d8037db70cc.png

第二步:将中文数字转化为阿拉伯数字并设置为目标格式

d9c21253028d6b7e87d2aa5be3e08a93.png

第三步:用连接符&将各个结果连接在一起。综合起来公式如下;

="XXDD-"&TEXT(A1,"yyyy-mm-dd")&"-"&TEXT(MATCH(LEFT(B1,LEN(B1)-1),TEXT(ROW($1:$20),"[dbnum1]d"),0),"00000")

[dbnum1]d 相当于把数字当作日期中天数的序列号来处理,因为一个月最多只有31天,所以当数字大于31时这个公式的结果就会出错!

所以我们修改下公式:

="XXDD-"&TEXT(A1,"yyyy-mm-dd")&"-"&TEXT(MATCH(LEFT(B1,LEN(B1)-1),TEXT(ROW($1:$20),"[>31][dbnum1];[dbnum1]d"),0),"00000")

上面text的自定义格式这样的写法相当牛,大家注意领会。

下面是群友咫尺天涯提供的一条公式

=TEXT(A1,"!X!S!D!D!-e-mm-dd-")&TEXT(LOOKUP(1,0/(SUBSTITUTE(TEXT(ROW($1:$100),"[dbnum1]"),"一十","十")&"单"=B1),ROW($1:$100)),"00000")

后半段的处理方式使用了LOOKUP,也不难理解,我们应该学习的是前半段的处理方式。

自定义年的格式可以用

=TEXT(A1,"yyyy-mm-dd")

也可以

=TEXT(A1,"e-mm-dd")

日期前面强制性加入XSDD-,可以!X!S!D!D!- ,每个要加入的字符前面加个!

综合一下,我们可以把公式更加精炼点!

=TEXT(A1,"!X!S!D!D!-yyyy-mm-dd")&"-"&TEXT(MATCH(LEFT(B1,LEN(B1)-1),TEXT(ROW($1:$50),"[>31][dbnum1];[dbnum1]d"),0),"00000")

转自:米宏Office

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值